package q1.project.log;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * 操作日志服务接口
 *
 * @author Q1 Team
 * @version 1.0
 */
public interface OperationLogService {

  /** 异步保存操作日志 */
  void saveAsync(OperationLogEntity log);

  /** 分页查询操作日志 */
  Page<OperationLogEntity> getOperationLogs(String tenantId, Pageable pageable);

  /** 根据用户ID查询操作日志 */
  Page<OperationLogEntity> getOperationLogsByUser(String userId, Pageable pageable);

  /** 根据模块查询操作日志 */
  Page<OperationLogEntity> getOperationLogsByModule(String module, Pageable pageable);

  /** 清理过期日志（保留最近N天） */
  void cleanExpiredLogs(int days);
}
